{%hackmd BJrTq20hE %}
第 14 屆 iThome 鐵人賽 (2022)
Node.js 提供了export
和require
兩個物件,其中 exports
是模組公開的介面require
用來從外部取得一個模組介面,所取得模組的exports
物件。
接下來我們就來建立自己的JS檔
Module讓JavaScript在後端也具有引入其他程式碼的機制,例如:C#的類別(class)、python的import機制。Module用於存放可以重複使用的程式碼,將程式碼分門別類、以獨立的JavaScript檔儲存,在Module中存在一個代表Module本身的module物件,藉由其中的exports屬性,配合require語法,將程式碼以更靈活的架構建置。
在Node.js中,建立一個模組非常簡單,我們建立一個main.js檔案,程式如下
let date=require('./date');
date.countdown();
然後我們在目前的目錄創建一個date.js檔案
exports.countdown = function(){
let date = new Date();
let dDate = new Date(2023,1,11);
let diff = Math.floor(Math.abs(dDate-date)/(1000 * 3600 * 24))+1;
console.log(`距離生日 ${diff} 天!`);
}
在以上範例中,hello.js透過exports
物件把world作為模組的存取介面,
在main.js中透過 require('/hello')
載入這個模組,然後就可以直接存取到hello.js中export
物件的成員函數了
使用require()將date Module引入為date物件,這樣就完成了基本的exports 跟 require
套件和程式之間的關係了。
Module的機制讓開發更容易應用在後端開發上,透過Module設計程式碼架構,使的JS也有像是Python import 的功能提高程式的利用率。